#ifndef _PET
#define _PET
#include<string>
#include<iostream>
#include<fstream>
#include "AppError.h"
#include "IOMgmt.h"

using namespace IOMgmt;
using namespace std;
//data members
//      string

//Pet Class
class Pet {
    public:
            //Pet Functions
            Pet();
            Pet(string Name, string Dna, string Sex);
            virtual ~Pet();
            void Perform(string cmd, ostream& fout )throw (AppError);
            string MyNameIs();
            string MySpeciesIs();
            string MySexIs();
            virtual void  Extract(ifstream& fin )throw(TokenError);	//Boundary input
            virtual void  Insert( ostream& fout );				//Boundary output
		    friend ifstream& operator>>(ifstream& fin, Pet& obj) throw(TokenError);
		    friend ostream&  operator<<(ostream& fout, Pet& obj);

    protected:
            virtual void  Get( ifstream& fin) throw(TokenError);	//Boundary input
            virtual void  Put( ostream& fout);				//Boundary output
            string name;
            string dna;
            string sex;

};// Pet header file
#endif
